//
//  AppDelegate.swift
//  czWB
//
//  Created by Qing on 2018/5/24.
//  Copyright © 2018年 成哥哥. All rights reserved.
//

import UIKit
import SVProgressHUD
import AFNetworking

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        
        window = UIWindow()
        
        window?.backgroundColor = UIColor.white
        
        window?.rootViewController = WBMainController()
        
        window?.makeKeyAndVisible()
        
        setupAdditions()

        stateBarBlockView()
        
        loadAppInfo()
        
        return true
        
    }

    /// 状态栏遮罩视图
    func stateBarBlockView()  {
        
        let frame = UIApplication.shared.statusBarFrame
        
        let vc = UIView(frame: frame)
        
        vc.backgroundColor = UIColor.init(hex: "f0f0f0")
        
        window?.addSubview(vc)
        
        window?.bringSubviewToFront(vc)
    }

}


// MARK: - 设置app额外信息
extension AppDelegate {
    
    
    /// 设置app额外信息,包括有SVP提醒框展示时间，AFN指示器，获得导航栏用户授权。
    private func setupAdditions()  {
        
//        全局SVP展示框显示时间为2秒
        SVProgressHUD.setMinimumDismissTimeInterval(1)
        
//        添加全局AFN 加载指示器
        AFNetworkActivityIndicatorManager.shared().isEnabled = true
        
//        获得用户授权显示通知(上方提示条，声音，badgeNumber)
        let notification = UIUserNotificationSettings(types: [.alert, .badge, .sound],
                                                      categories: nil)

        UIApplication.shared.registerUserNotificationSettings(notification)
        
    }
    
}

// MARK: - 从服务器加载网络Json更新界面
extension AppDelegate {

    
    /// 从服务器加载网络Json更新UI界面
    private func loadAppInfo() {

        //模拟异常加载
        DispatchQueue.global().async {
            
            //归档
//            1.获取bundle名为"demo.json"的文件路径
//            2.把文件转化为二进制
//            3.获得应用程序的程序包目录，包含应用程序的本身。由于应用程序必须经过签名，所以您在运行时不能对这个目录中的内容进行修改，否则可能会使应用程序无法启动.资源图片文件都在这个目录下面.
//            4.拼接路径名
//            5.把文件放在路径名下面
            let url = Bundle.main.path(forResource: "demo.json", ofType: nil)
            let data = NSData(contentsOfFile: url!)
            let docDir = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
            let jsonPath = (docDir as NSString).appendingPathComponent("demo.json")
            data?.write(toFile: jsonPath, atomically: true)
            print("应用程序Json加载路径\(jsonPath)")
        }

    }


}

